vr2-6-05.wrl


[ VRML source code ]

#VRML V2.0 utf8
#vr2-6-05.wrl
Group {
  children [
    DEF Ball Transform {
      children Shape {
        appearance Appearance {
          material Material {
            diffuseColor 1 1 0
          }
        }
        geometry Sphere { radius 0.15 }
      }
    },
    DEF Timer TimeSensor {
      cycleInterval 10.0
      loop TRUE
      startTime 1.0
      stopTime  0.0
    },
    DEF Rot Script {
      eventIn SFFloat set_angle
      eventOut SFVec3f coord
      url "Change.class"
    }
  ]
}
ROUTE Timer.fraction_changed TO Rot.set_angle
ROUTE Rot.coord TO Ball.set_translation

[ Java source code ]

//Change.class
import vrml.*;
import vrml.field.*;
import vrml.node.*;
public class Change extends Script {
    SFVec3f coord;
    float c[]=new float[3];
    float angle=0.0f;
    public void initialize() {
        coord = (SFVec3f) getEventOut("coord");
    }
    public void processEvent(Event e) {
      if(e.getName().equals("set_angle")==true) {
        angle=((ConstSFFloat)e.getValue()).getValue();
        c[0] = (float)Math.sin(7*angle*6.28);
        c[1] = (float)Math.cos(5*angle*6.28);
        c[2] = (float)Math.cos(3*angle*6.28);
        coord.setValue(c);
      }
    }
}